/**
 * Copyright 2008-2009. Chongqing Communications Industry Services Co.,Ltd Information Technology Branch. All rights
 * reserved. <a>http://www.cqcis.com</a>
 */
package com.cqcis.uip.base.framework.handlers;

import com.cqcis.uip.base.framework.common.Role;
import com.cqcis.uip.base.framework.common.Task;
import com.cqcis.uip.base.framework.core.ServiceRole;
import com.cqcis.uip.base.framework.service.FtpSession;

/**
 * FTP客户端实现, ftp客户端与服务端的交互定义为这样一个过程：
 * 1. 客户端先连接登录，然后执行定义的业务操作，完毕后退出登录，且断开链接。
 * 2. 因而，ftp只适合这样的应用场景，非实时性，交互频率低，资源消耗大，业务操作简单唯一的场景。
 * 3. 其他场景不建议使用ftp。
 * 
 * @author huangmy
 * @date   2008-8-16
 */
@ServiceRole(Role.FTP_CLIENT)
public interface FtpClientService {
	/**
	 * 执行FTP操作, 对远程FTP服务器上的操作方法，可以通过session获得.
	 * 该方法将会被定时循环调用.
	 * 
	 * @param session
	 * @throws Exception
	 */
    public void doTransfer(FtpSession session) throws Exception;
    
    /**
     * 该方法用于被其他提交task.
     * 
     * @param task
     * @param session
     * @return
     * @throws Exception
     */
    public void schedule(Task task, FtpSession session) throws Exception;
}
